/**
 * 给三个点判断直角三角形
 * 点积为0即可
 */
#include <bits/stdc++.h>
using namespace std;

struct Point{
    int x, y;
    Point(int a=0,int b=0):x(a),y(b){}
    void input(){
        cin >> x >> y;
    }
};

int cross(const Point & O, const Point & A, const Point & B){
    auto xoa = A.x - O.x;
    auto xob = B.x - O.x;
    auto yoa = A.y - O.y;
    auto yob = B.y - O.y;
    return xoa * yob - xob * yoa;
}

int dot(const Point & O, const Point & A, const Point & B){
    auto xoa = A.x - O.x;
    auto xob = B.x - O.x;
    auto yoa = A.y - O.y;
    auto yob = B.y - O.y;
    return xoa * xob + yoa * yob;
}

void work(){
    Point A, B;
    A.input();
    B.input();
    auto c = dot(Point(0, 0), A, B);
    auto c1 = dot(A, Point(0, 0), B);
    auto c2 = dot(B, A, Point(0, 0)); 
    cout << (0 == c or 0 == c1 or 0 == c2 ? "Yes" : "No") << endl;
    return;
}

int main(){
#ifndef ONLINE_JUDGE
    freopen("z.txt", "r", stdin);
#endif
    ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);	
    int nofkase = 1;
    while(nofkase--) work();
	return 0;
}